#pragma once 
#include<iostream>
#include<vector>
#include<ctime>

typedef void(*task_t)();

void Printf()
{
    std::cout<<"我是一个打印的任务"<<std::endl;
}

void DownLoad()
{
    std::cout<<"我是一个下载的任务"<<std::endl;
}

void Free()
{
    std::cout<<"我是一个释放的任务"<<std::endl;
}

class TaskManger
{
public:
    TaskManger()
    {
        srand(time(nullptr));
    }
    //进行注册
    void Register(task_t t)
    {
        _tasks.push_back(t);
    }
    int code()
    {
        return rand() % _tasks.size();
    }
    void Execute(int code)
    {
        if(code >= 0 && code < _tasks.size())
        {
            _tasks[code]();
        }
    }
    ~TaskManger()
    {}

private:
    std::vector<task_t> _tasks;
};